﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        struct PersonStruct
        {
            public string name;
            public int telphone;
            public string address;

            public void PersonStructs(string name, int telphone, string address)
            {
                this.name = name;
                this.telphone = telphone;
                this.address = address;
            }
            public void output()
            {
                Console.WriteLine("我的姓名是{0}，电话是{1}，地址是{2}", this.name, this.telphone, this.address);
            }
            public void output(string name)
            {
                Console.WriteLine("我的姓名是{0}，电话是{1}，地址是{2}", this.name, this.telphone, this.address);
            }
        }
        static void Main(string[] args)
        {
            //        定义一个结构体，名为PersonStruct，有三个成员变量：姓名、电话、地址，
            //在主方法中，创建一个PersonStruct结构体对象p1，为p1的成员变量赋值。
            //再声明一个PersonStruct结构体变量p2，把p1赋值给p2，改变p2的姓名，打印p1的内容。
            PersonStruct P1;
            P1.name = "张三";
            P1.telphone = 123;
            P1.address = "江西";
            P1.output();

            PersonStruct P2 = P1;
            P2.name = "李四";
            P1.output();

            string str = "aas";
            P1.output(str);//name = str;  形参 = 实参

            //定义一个类，名为PersonClass，有三个成员变量：姓名、电话、地址，
            //在主方法中，创建一个PersonClass对象p3，为p3的成员变量赋值。
            //再声明一个PersonClass变量p4，把p3赋值给p4，改变p4的姓名，打印p3的内容。
            PersonClass p3 = new PersonClass();
            p3.name = "张飞";
            p3.address = "河南";
            p3.phone = "123123123";
            p3.output();

            PersonClass p4 = p3;
            p4.name = "江洋";
            p3.output();
            //观察打印结果，并在在注释中，说下你对此的认识（它们为什么会这样？）
        }
    }
}
